/*
    2D FDTD simulator
    Copyright (C) 2019 Emilia Blåsten

    This program is free software: you can redistribute it and/or
    modify it under the terms of the GNU Affero General Public License
    as published by the Free Software Foundation, either version 3 of
    the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public
    License along with this program.  If not, see
    <http://www.gnu.org/licenses/>.
*/
/* grid1dez.h: The header file for Grid1D and its functions. The
 * functions themselves are defined in the corresponding .c file.*/

#ifndef _GRID1DEZ_H
#define _GRID1DEZ_H

struct Grid1D {
  double *hy, *hyUpdateHcoeff, *hyUpdateEcoeff;
  double *ez, *ezUpdateHcoeff, *ezUpdateEcoeff;
  int sizeX;
  int time, maxTime;
  double cdtds;
};

typedef struct Grid1D Grid1D;


Grid1D *gridCreate1d(int sizeX);
void gridInit1d(Grid1D *g, int time, int maxTime, double cdtds);
void gridDestroy1d(Grid1D *g);


#endif
